# -*- coding: utf-8 -*-
"""
file:ch5_4营销转化率函数
author: Fuwen
time: 2022/7/16 16:38
software:PyCharm
"""
import numpy as np
import matplotlib.pyplot as plt

# 营销转化结果，是投入度量化值的函数， 但属于二次凸函数， 有极大值， 对应的边际效应先升后降， 在极大值时边际效应为0，
# f(x) = -3.5 * x**2 + 18.5 * x - 5

# 二次函数系数
a, b, c = -3.5, 18.5, -5

# 标记业绩点
x_list = [1, 2, 3]
y_list = [10, 18, 19]
for x, y in zip(x_list, y_list):
    plt.text(x + 0.05, y - 1, '(' + str(x) + ',' + str(y)+ ')')
    plt.plot(x, y, '-o', 'r')

# 营销转化函数
x = np.linspace(0, 5, 100)
y = a * x**2 + b * x + c
plt.plot(x, y, '--')

# 微分 -7 * x + 18.5, 一次函数， 令微分=0， x = 2.64,  x对应的就是营销投入度的量值
x_max = round(b / (-2*a), 2)
y_max = round(a * x_max**2 + b * x_max + c, 2)
plt.text(x_max + 0.05, y_max + 1, '(' + str(x_max) + ',' + str(y_max)+ ')')
plt.plot(x_max, y_max, '--x', )

plt.grid()
plt.show()

